Automatic information retrieval, search, and customer self service systems must, in some manner, understand an end user's query to a sufficient degree to be able to retrieve or construct an appropriate response. For keyword based systems this might simply involve the ability to extract keywords (important terms) from the query as well as interpret some simple operators such as NOT, OR, and PHRASE. For example, the following query: SHOW ME ALL DOCUMENTS CONTAINING THE WORDS “PYTHON” OR “COBRA” BUT NOT THE PHRASE “MONTY PYTHON” might be understood to mean: (PYTHON OR COBRA) NOT “MONTY PYTHON”.
A more sophisticated system might understand the same meaning from the natural language query “SHOW ME INFORMATION ABOUT PYTHONS AND COBRAS” by understanding from the question's concepts that the desired answers are about snakes and not about the comedy troupe Monty Python. An even more sophisticated system might understand large classes of questions that effectively mean the same thing. For example, “HOW DO YOU CHECK YOUR BALANCE?”, “HOW MUCH MONEY DO I HAVE?”, “I'D LIKE TO VIEW MY CURRENT STATEMENT.”, etc. may all be interpreted to mean the same thing. These question classes are called intents.
Some query systems attempt to understand a query while a user is completing the question. For example, a search engine may try to automatically provide suggestions for a search field of a web page while the user is still typing in the entry. This potentially reduces the time and effort required by the user to enter their query and possibly helps the user be more precise and avoid mistakes. This technique is primarily embodied as variants of what is often referred to as field “auto-completion”. The system analyzes the query as the user is typing it in and proposes possible completions for the query from which the user can choose. For example, if the user types “golden” then the system might respond with “golden mean,” “golden retriever,” “Golden Gate,” etc. These suggestions may be produced in any number of ways such as by rule based systems or statistical methods. However, all the suggestions begin with (or in some cases contain) the same text already input by the user.